FIG. 1 shows an exemplary network 100. A network 100 is implemented with a plurality of machines (referred to as a switches, routers, or nodes) interconnected by a plurality of links. For example, as seen in the exemplary network 100 of FIG. 1, nodes 101 through 109 are interconnected by links 111 through 125. A connection is a path through a network, such as path 126 seen in FIG. 1. A connection based network is a network that can send data from a source to a destination via a connection.
If a user of the network 100 desires to send information from a source A to a destination B, the connection 126 is first established through the network 100. Many different types of networking technologies employ connections in order to transport data. Connection based networking technologies include Asynchronous Transfer Mode (ATM), Multi-Protocol Label Switching (MPLS), Frame Relay, Synchronous Optical NETwork (SONET), and Wavelength Division Multiplexing (WDM) among others.
In many common circumstances, a user desires to establish a networking service relationship with a networking service provider (i.e., an entity or individual that offers the use of a network to a user). For example, a corporate user having an office at source A (e.g., New York City) may desire to send/receive information to/from another office at destination B (e.g., Chicago) over the course of business for the next calendar year.
A connection based service having defined characteristics as to the transportation of information between the source A and the destination B may be established by the service provider for the corporate user. For example, the service provider may guarantee that the network 100 will be able to accept an offered load of X Mb/s (or less) from the user at source A that will be delivered at the destination B with no more than Y seconds of end-to-end delay from the source A to the destination B.
The characteristics of the connection (e.g., the source/destination pair A/B, the path 126 through the network, the bandwidth allocation of X Mb/s at the source and the Quality of Service (QoS) of no more than Y seconds of delay across the network) are effectively stored by the service provider's network. When the corporate user attempts to send information from source A to destination B, the network 100 detects the attempt and establishes the connection according to its characteristics.
Connection provisioning is the configuring of a new connection into the repertoire of connections supported by a network. Connection provisioning involves determining: 1) the path for a connection; 2) the amount of the network's resources (e.g., bandwidth) used to support the connection; and 3) the storing of connection characteristics (e.g., a next hop node, switching or routing capacity resources to devote to the connection, etc.) into the nodes of the network so that the nodes can establish the connection when it is requested by the user.
A problem with connection provisioning is that it is manually intensive. That is, connections are currently provisioned into a network by manually entering next hop information into each node within the network that is used to support the connection. As a result, significant time is consumed from the moment a user is able to present characteristics of a desired connection (e.g., a source, a destination, a bandwidth, an in transit delay, etc.) to a service provider to the moment that the connection is configured into the network 100 so that it can establish such a connection afterward.
In related instances, significant time is also consumed trying to “bring-up” a network (e.g., from a nodal or other network system failure) because the connections have to be manually re-provisioned. In still other related instances, network connection provisions cannot be quickly adjusted to take advantage of changing networking conditions because the manual provisioning process is too cumbersome.
A method comprising selecting a connection source and a connection destination from a graphical user interface that displays a topology of a network. Then, executing a routing algorithm to determine a path through the network. Then, provisioning the connection within the network that corresponds to the path.